This section documents
the Windows 98 registry entries for TCP/IP.
Configuration settings
for Microsoft TCP/IP are stored in the Registry as part of the protocol
installation process. If Dynamic Host Configuration Protocol (DHCP) is used on
the network, configuration information can also be provided by DHCP client
service. DHCP-provided information is stored in the registry in binary format
and cannot be altered by editing it. However, static information can be entered
in the registry, which overrides DHCP default values.
The value entries are
added to the following registry key:
HKEY_LOCAL_MACHINE
\System \CurrentControlSet \Services \VxD\MSTCP
Descriptions of the
TCP/IP values in the MSTCP are described in Table 31.18 (all data types are
DWORD).
Table 31.18 TCP/IP
registry entries
Value |
Description |
BroadcastAddress = broadcast address in hexadecimal |
Specifies the address to use for NetBIOS name query
broadcasts. The default is based on the Internet Protocol (IP) address and
the subnet mask. |
BcastNameQueryCount = integer |
Specifies the number of times the system will retry
NetBIOS name query broadcasts. The default is 3. |
BcastQueryTimeout = milliseconds |
Specifies the period of time the system will wait before
timing out broadcast name queries. The minimum value is 100. The default is
750. |
BSDUrgent = 0 or 1 |
If this value is 1, it specifies that Microsoft TCP/IP is
to treat urgent data the way some UNIX systems do (with a maximum of 1 byte
of urgent data, for example). If this value is 0, it specifies that the stack
is to handle urgent data as specified by RFC 1122. The default is 1. |
CacheTimeout = milliseconds |
Specifies how long NetBIOS names are cached. The minimum
is 60,000 milliseconds (1 minute). The default is 360,000 milliseconds (6
minutes). |
DeadGWDetect = 0 or 1 |
Specifies whether Microsoft TCP/IP will use another
gateway if the current default gateway seems to be down. The default is 1. |
DefaultRcvWindow = 16-bit number |
Specifies the default receive window advertised by TCP.
The default is 8192. |
DefaultTOS = 8-bit number |
Specifies the default type of service (TOS) for IP packets
initiated by Microsoft TCP/IP. The default is 0. |
DefaultTTL = 8-bit number |
Specifies the default time to live (TTL) for IP packets
initiated by Microsoft TCP/IP. The default is 128. |
DnsServerPort = port |
Specifies which DNS server port to send queries to when
resolving a name using DNS. The default is 53. |
EnableProxy = 0 or 1 |
If this value is 1, it specifies that this computer is a
Windows Internet Naming Service (WINS) proxy agent. The default is 0. |
EnableRouting = 0 or 1 |
Specifies whether to enable static routing. Microsoft
TCP/IP does not supply a routing protocol, so all route table entries must be
entered using the route command. The default is 0. |
IGMPLevel = 0, 1, or 2 |
Specifies the level of support allowed for IP multicast,
corresponding to the levels in RFC 1112. The default is 2. |
InitialRefreshT.O. = milliseconds |
Specifies the interval over which to contact WINS to
refresh the name. The minimum is 16 minutes, and the maximum is approximately
50 days (0xFFFFFFFF). The default is 960,000 milliseconds (16 minutes). |
KeepAliveTime = 32-bit number |
Specifies the connection idle time in milliseconds before
TCP will begin sending keepalives, if keepalives are enabled on a connection.
The default is 2 hours (7,200,000 milliseconds). |
KeepAliveInterval = 32-bit number |
Specifies the time in milliseconds between retransmissions
of keepalives, once the KeepAliveTime has expired. Once KeepAliveTime has
expired, keepalives are sent every KeepAliveInterval milliseconds until a
response is received, up to a maximum of MaxDataRetries before the connection
is aborted. The default is 1 second (1000 milliseconds). |
LmhostsTimeout = milliseconds |
Specifies the period of time the system will wait before
timing out when seeking LMHOSTS for name resolution. The minimum value is
1000 milliseconds (1 second). The default is 10,000 milliseconds (10
seconds). |
MaxConnections = 32-bit number |
Specifies the maximum number of concurrent connections.
The default is 100. |
MaxConnectRetries = 32-bit number |
Specifies the number of times a connection attempt (SYN)
will be retransmitted before giving up. The initial retransmission timeout is
3 seconds, and it is doubled each time up to a maximum of 2 minutes. The
default is 3. |
MaxDataRetries = 32-bit number |
Specifies the maximum number of times a segment carrying
data or FIN will be retransmitted before the connection is aborted. The
retransmission timeout itself is adaptive and will vary according to link
conditions. The default is 5. |
NameServerPort = port |
Specifies the User Datagram Protocol (UDP) port on the
name server to which to send name queries or registrations. The default is
137. |
NameSrvQueryCount = integer |
Specifies the number of times the system will try to
contact the WINS server for NetBIOS name resolution. The default is 3. |
NameSrvQueryTimeout = milliseconds |
Specifies how long the system waits before timing out a name
server query. The minimum is 100 milliseconds. The default is 750
milliseconds. |
NameTableSize = integer |
Specifies the maximum number of names in the NetBIOS name
table. The minimum allowable value is 1 and the maximum is 255. The default
is 17. |
NodeType = 1, 2, 4, or 8 |
Specifies the mode of NetBIOS name resolution used by
NetBIOS over TCP/IP, where 1 = b-node, 2 = p-node, 4 = m-node, and 8 =
h-node. This value can be configured using DHCP. The default is 1 (b-node) if
no value is specified; if WINS servers are specified and NodeType is not, the
default is 8 (h-node). |
PMTUBlackHoleDetect = 0 or 1 |
Specifies whether the stack will attempt to detect Maximum
Transmission Unit (MTU) routers that do not send back Internet Control
Message Protocol (ICMP) fragmentation-needed messages. Setting this parameter
when it is not needed can cause performance degradation. The default is 0. |
PMTUDiscovery = 0 or 1 |
Specifies whether Microsoft TCP/IP will attempt to perform
path MTU discovery as specified in RFC 1191. The default is 1. |
RandomAdapter = 0 or 1 |
For a computer with multiple network adapters, specifies
whether to respond with an IP address selected randomly from the set of
addresses on the computer or whether to return the IP address of the adapter
that the request came in upon. The default is 0 (not random; that is, return
the address of the adapter that the request came in upon). |
RoutingBufSize = 32-bit number |
Specifies the total amount of buffer space to allocate for
routing packets. This parameter is ignored if EnableRouting=0. The default is
73,216. |
RoutingPackets = 32-bit number |
Specifies the maximum number of packets that can be routed
simultaneously. This parameter is ignored if EnableRouting=0. The default is
50. |
SessionKeepAlive = milliseconds |
Specifies how often to send session keepalive packets on
active sessions. The minimum is 60 seconds. The default is 3,600,000
milliseconds (1 hour). |
SessionTableSize = integer |
Specifies the maximum number of sessions in the NetBIOS
session table. The minimum allowable value is 1 and the maximum is 255. The
default is 255. |
SingleResponse = 0 or 1 |
For a computer with multiple network adapters, specifies
whether to send all IP addresses on a name query request from WINS. If this
value is 1, the system will send one address in a name query response; if 0,
it will return all the addresses of its adapters. The default is 0. |
Size/Small/Medium/Large = 1, 2, or 3 |
Specifies how many buffers of various types to
pre-allocate and the maximum that can be allocated, where 1 = small, 2 =
medium, and 3 = large. The default is 1; the default is 3 if the WINS proxy
is enabled. |
This section describes
variables for subkeys that appear in the following registry key:
HKEY_LOCAL_MACHINE
\System \CurrentControlSet \Services \VxD \MSTCP \ServiceProvider
The Class and ProviderPath
values are used by the service resolution and registry APIs in Windows Sockets.
The Class parameter indicates that TCP/IP is a name service provider,
and its binary value (8) should not be changed. The ProviderPath
parameter is a string that defines the location and file name for the 32-bit
Windows Sockets DLL (the default is %windir%\system\wsock32.dll).
The following keys
describe the order used to resolve host names. A lower number sets a higher
priority for name resolution. These settings are used for 16-bit Windows
Sockets, which need to rely on the resolvers that are expected to take the
least time. The numbers indicate the default values specified in Windows 98.
LocalPriority = 0x1F3
(499)
HostsPriority = 0x1F (500)
DNSPriority = 0x7D0 (2000)
NetbtPriority = 0x7D1 (2001)
The entries in this
section must be added to the following registry key, where n represents
the particular TCP/IP-to-network adapter binding.
HKEY_LOCAL_MACHINE
\System \CurrentControlSet \Services \Class \netTrans \000n
Value |
Data type |
Description |
|
|
|
|
|
|
|
|
|
MaxMTU = 16-bit integer |
DWORD |
Specifies the maximum size datagram IP that can pass to a
media driver. Subnetwork Access Protocol (SNAP) and source routing headers
(if used on the media) are not included in this value. For example, on an
Ethernet network, MaxMTU will default to 1500. The actual value used will be
the minimum of the value specified with this parameter and the size reported
by the media driver. The default is the size reported by the media driver; an
Ethernet network defaults to 1500 bytes and a Point-to-Point (PPP) Protocol
dial-up connection defaults to 576 bytes. |
ZeroBroadcast = 0 or 1 |
String |
If this parameter is set to 1, then IP will use
zeros-broadcasts (0.0.0.0.) instead of ones-broadcasts (255.255.255.255).
Most systems use ones-broadcasts, but some systems derived from BSD
implementations use zeros-broadcasts. Interoperation will not work well on
the same network for systems that use different broadcasts. Valid Range 0 or
1 (false or true); Default: 0 |
The TCP/IP node type can
be manually changed by editing the Windows 98 registry. The location is under
the HKEY_LOCAL_MACHINE key under the following subkey:
\System\CurrentControlSet\Services\VxD\MSTCP\NodeType
The four TCP/IP node
types are defined by number:
Number |
Node Type |
Description |
|
|
|
|
|
|
|
|
|
1 |
b-node |
Broadcast only |
2 |
p-node |
WINS only |
4 |
m-node |
Broadcast, then WINS |
8 |
h-node |
WINS, then broadcast |
The default Windows 98
TCP/IP node types are:
This section provides
some tips for troubleshooting registry problems, and for troubleshooting your
system using the registry.
Understanding this phase
of the boot process can help when you need to troubleshoot registry and
operating system problems.
The Windows 98 operating
system load sequence is as follows:
Sequence |
Component |
Description |
|
|
|
|
|
|
|
|
|
1 |
Registry |
Base system information |
2 |
System.ini |
Legacy system configuration |
3 |
Kernel32.dll |
Main operating system code |
4 |
Gdi.exe and Gdi32.dll |
Graphical device interface; graphics engine |
5 |
User.exe and User32.exe |
Code for managing the user interface including the window
manager |
6 |
Resources and fonts |
|
7 |
Win.ini |
Legacy system program and user configuration |
The Windows 98 desktop
initialization sequence is as follows:
1.
The
Windows shell loads and machine policies are enforced.
2.
The
desktop components load.
3.
If
connected to a network, a logon prompt appears. Once the user is logged on, the
logon scripts are carried out and policies are enforced for the user.
4.
Once
the user logs on, the system can process user-specific configuration
information and load any user-specific policy files. If the user does not log
on, default settings are used to determine user preferences. If network logon
is set, the user is logged on to the network during this process.
Accessing system
registry.
When you start Windows
98, you receive one of the following error messages:
Windows encountered an
error accessing the system Registry. Windows will restart and repair the system
Registry for you now.
Windows 98 will restart
your computer and run Registry Checker in MS-DOS mode (Scanreg.exe) to fix the
problem.
Not enough memory.
When you start Windows
98, you receive the following error message:
Windows was unable to
process the registry. This may be fixed by rebooting to Command Prompt Only and
running SCANREG /FIX. Otherwise there may not be enough conventional memory to
properly load the registry.
If you see this message
after you run ScanReg /Fix, then you need to free up conventional memory in
your computer.
When you remove a program
using the Add/Remove Programs option in Control Panel, you receive the
following error message:
An error occurred while
trying to remove <Program Name>.
Uninstallation has been canceled.
This error can occur if
you have manually deleted a program that is listed in the Install/Uninstall
list in the Add/Remove Programs Properties dialog box. To remove a
program from the Install/Uninstall list, delete the appropriate key
under the following registry key:
HKEY_LOCAL_MACHINE
\Software \Microsoft \Windows \CurrentVersion \Uninstall
When you start Windows
98, you receive an error message telling you that Windows 98 cannot find a
device file that may be needed to run Windows or a Windows-based application.
Sometimes a specific file name is specified.
This error message can
occur for either of the following reasons:
To resolve this problem,
follow each step below until the error no longer occurs:
1.
If
you recently removed a program or component, reinstall the program or
component, then run the uninstall program if one is available. If no uninstall
program is available for the program or component, contact the manufacturer to
obtain instructions on uninstalling.
2.
If
the missing device driver has a .386 extension, disable the line referring to
this device driver in the System.ini file by placing a semicolon (;) at the
beginning of the line.
For
example, if the line referencing the missing device driver reads:
device=Example.386
change
the line to read:
;device=Example.386
3.
If
the missing device driver has a .vxd extension, it is a driver designed for use
with Windows 98 and is referenced in the registry. In most cases, a program or
component with drivers designed for use with Windows 98 will also be listed in
the Add/Remove Programs option in Control Panel. Following the instructions in
step 1 should correct the problem.
If the error occurs after
following the instructions in step 1, you need to locate the value that
references the missing device driver in the registry, and delete that registry
value.
If a specific device
driver is not named in the error message, one of the StaticVxD values in the
registry is probably blank or contains only spaces. The StaticVxD values are
located in the registry keys below the following key:
HKEY_LOCAL_MACHINE
\System \CurrentControlSet \Services \VxD
Use Registry Editor to
locate and delete any StaticVxD value in the registry that contains invalid
data, is blank, or contains only spaces.
When Windows 98 starts,
the System.ini file and the registry are read to obtain a list of device
drivers to load. When Windows 98 cannot locate a virtual device driver that it
is attempting to load, an error message is generated.
Virtual device drivers
are files required by various programs to communicate with your computer's
hardware.
The following sample
registry key contains a StaticVxD value:
HKEY_LOCAL_MACHINE
\System \CurrentControlSet \Services \VxD \COMBUFF
The data for this
StaticVxD value is "*COMBUFF" (without the quotation marks; the
quotation marks appear in Registry Editor, but are not part of the VxD name).
The asterisk (*) preceding the VxD name indicates that the VxD is internal to
the Vmm32.vxd file. If the VxD referenced by the StaticVxD value is not
internal to the Vmm32.vxd file, its name is not preceded by an asterisk and
typically has a .vxd extension.
Additional Resources
For more information about |
See this resource |
|
|
|
|
|
|
Windows 98 registry |
Inside the Microsoft Windows 98 Registry by Günter
Born |
Windows NT registry |
The Microsoft Windows NT Workstation Resource Kit |
Programming the registry |
The Microsoft Windows 98 Software Development Kit |